#pragma once

#include <boost/describe.hpp>

#include <algorithm/shared/utils/Para.h>
#include <utils/HasValue.h>
#include <utils/ParaUtils.h>


#include <memory>

namespace solar
{
    class Sun;

    class ScenePara : public Para
    {
        public:
            ScenePara() = default;
#include <utils/class_name.inc>

        private:
            double DNI_ = kUndefined;  // 太阳直接辐射强度
            double CSR_ = kUndefined;  // 太阳光分布参数
            // std::shared_ptr<Sun> sun_; // 太阳相关参数
            BOOST_DESCRIBE_CLASS(ScenePara, (Para), (), (), (DNI_, CSR_))
    };
} // namespace solar

#define CURRENT_CLASS_NAME ScenePara
#include <utils/class_describe_header.inc>
SOLAR_DESCRIBE_CLASS(ScenePara, (Para), (), (), (DNI_, CSR_))
